Apache Commons Collections Java ডেভেলপারদের জন্য একটি শক্তিশালী লাইব্রেরি, যা Java Collections Framework (JCF)-এর বাইরে কিছু অতিরিক্ত ফিচার এবং ডেটা স্ট্রাকচার সরবরাহ করে। এর মধ্যে একটি গুরুত্বপূর্ণ এবং কার্যকরী ডেটা স্ট্রাকচার হল Bag, যা সাধারণভাবে MultiSet হিসেবেও পরিচিত।
Bag হল একটি ডেটা স্ট্রাকচার যা একাধিক মান (values) রাখতে পারে এবং একটি উপাদানকে একাধিকবার ধারণ করতে পারে। এটি একটি সাধারণ Set নয়, কারণ Set কেবল ইউনিক উপাদান ধারণ করে, কিন্তু Bag একই উপাদান একাধিকবার রাখতে সক্ষম।
Bag এর সবচেয়ে বড় বৈশিষ্ট্য হল এটি একটি উপাদান কতবার অন্তর্ভুক্ত হয়েছে তা ট্র্যাক করতে পারে। উদাহরণস্বরূপ, যদি আপনি একটি শপিং কার্টে একাধিক আইটেম যোগ করেন, তবে সেই আইটেমটির পুনরাবৃত্তি থাকবে এবং Bag এটিকে সঠিকভাবে ট্র্যাক করতে পারবে।
Bag ব্যবহার করা খুবই সহজ, এবং এটি সাধারণত HashBag
, TreeBag
বা LinkedHashBag
এর মতো বিভিন্ন বাস্তবায়নের মাধ্যমে আসে। নিচে একটি সাধারণ উদাহরণ দেওয়া হলো:
import org.apache.commons.collections4.Bag;
import org.apache.commons.collections4.bag.HashBag;
public class BagExample {
public static void main(String[] args) {
// Create a Bag instance
Bag<String> bag = new HashBag<>();
// Add elements
bag.add("apple");
bag.add("banana");
bag.add("apple");
bag.add("orange");
// Print the Bag
System.out.println("Bag: " + bag);
// Get the count of an element
System.out.println("Count of apple: " + bag.getCount("apple"));
// Remove an element
bag.remove("apple");
System.out.println("Bag after removing apple: " + bag);
}
}
Bag: [apple, apple, banana, orange]
Count of apple: 2
Bag after removing apple: [banana, orange, apple]
HashBag
একটি সাধারণ Bag বাস্তবায়ন যা কোনো নির্দিষ্ট অর্ডার ছাড়াই উপাদানগুলিকে ধারণ করে।add()
মেথডটি উপাদানগুলিকে Bag-এ যোগ করে।getCount()
মেথডটি একটি উপাদান কতবার Bag-এ রয়েছে তা ফেরত দেয়।remove()
মেথডটি নির্দিষ্ট উপাদানটি Bag থেকে মুছে ফেলে।BagUtils একটি ইউটিলিটি ক্লাস যা Bag টাইপের কালেকশনের জন্য বিভিন্ন সহায়ক মেথড সরবরাহ করে। এটি Bag এর উপর সাধারণ অপারেশন (যেমন, যোগ করা, বাদ দেওয়া, গণনা করা ইত্যাদি) করতে সহায়তা করে। BagUtils এর সাহায্যে আপনি আরও সহজে এবং কার্যকরভাবে Bag এর সাথে কাজ করতে পারেন।
BagUtils.synchronizedBag()
:
Bag<String> synchronizedBag = BagUtils.synchronizedBag(new HashBag<>());
BagUtils.addAll()
:
Collection<String> collection = Arrays.asList("apple", "banana", "apple");
Bag<String> bag = new HashBag<>();
BagUtils.addAll(bag, collection);
BagUtils.isBag()
:
boolean isBag = BagUtils.isBag(bag);
BagUtils.getUniqueSet()
:
Set<String> uniqueSet = BagUtils.getUniqueSet(bag);
BagUtils.subtract()
:
Bag<String> bag1 = new HashBag<>(Arrays.asList("apple", "banana", "apple"));
Bag<String> bag2 = new HashBag<>(Arrays.asList("banana"));
Bag<String> result = BagUtils.subtract(bag1, bag2);
Bag এবং BagUtils Apache Commons Collections এর অত্যন্ত কার্যকরী বৈশিষ্ট্যগুলির মধ্যে একটি। Bag ডুপ্লিকেট উপাদান ধারণ এবং তাদের উপস্থিতির সংখ্যা ট্র্যাক করতে সহায়তা করে, এবং BagUtils সহজেই Bag-এর সাথে কাজ করার জন্য ইউটিলিটি মেথড সরবরাহ করে। এটি বিশেষভাবে উপকারী যখন আপনাকে ডেটার বিভিন্ন সংস্করণের ট্র্যাকিং বা একাধিক মান একত্রে সংরক্ষণ করতে হয়। Java ডেভেলপারদের জন্য এটি একটি শক্তিশালী টুল, যা তাদের কাজের গতি এবং কার্যকারিতা বৃদ্ধি করতে সহায়তা করে।
common.read_more